#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <string.h>

int g_val=100;
int main()
{
  pid_t id=fork();
  if(id==0)
  {
    int i=0;
    while(1)
    {
    printf("I am child process,pid:%d,ppid:%d,g_val:%d,&g_val:%p\n",getpid(),getppid(),g_val,&g_val);
    sleep(1);
    i++;
    if(i==5)
    {
      g_val=300;
      printf("I am child process,change :%d->%d\n",100,300);
    }
    }
  }
  else{
    while(1)
    {
    printf("I am father process,pid:%d,ppid:%d,g_val:%d,&g_val:%p\n",getpid(),getppid(),g_val,&g_val);
    sleep(1);   
    }
  }
  return 0;
}



//int main()
//{
//  extern char** environ;
//  int i=0;
//  //export myvalue=1111111111111111111111;
//  for(;environ[i];i++)
//  {
//    printf("env[%d]->%s\n",i,environ[i]);
//  }
//  return 0;
//}





//int g_val=1000;
//int main(int argc,char* argv[])
//{
  //printf("I am father process,pid: %d,ppid:%d,g_val:%d\n",getpid(),getppid(),g_val);
  //if(argc!=2)
  //{
  //  printf("Usage: %s -[a,b,c,d]\n",argv[0]);
  //  return 1;
  //}
  //if(strcmp(argv[1],"-a")==0)
  //{
  //  printf("this is function1\n");
  //}
  //else if(strcmp(argv[1],"-b")==0)
  //{
  //  printf("this is function2\n");
  //}
  //else if(strcmp(argv[1],"-c")==0)
  //{
  //  printf("this is function3\n");
  //}
  //else if(strcmp(argv[1],"-d")==0)
  //{
  //  printf("this is function4\n");
  //}
  //else{
  //  printf("no function\n");
  //}
 // int i=0;
 // for(;argv[i];i++)
 // {
 //   printf("argv[%d]->%s\n",i,argv[i]);
 // }
 // return 0;
//}
//int g_val=10000;
//int main(int argc, char *argv[]) {
//printf("I am father process, pid: %d, ppid: %d, g_val: %d\n", getpid(), getppid(), g_val); 
//    if(argc != 2)
//    {
//        printf("Usage: %s -[a,b,c,d]\n", argv[0]);
//        return 1;
//    }
//    if(strcmp(argv[1], "-a") == 0)
//    {
//        printf("this is function1\n");
//    }
//    else if(strcmp(argv[1], "-b") == 0)
//    {
//        printf("this is function2\n");
//    }
//    else if(strcmp(argv[1], "-c") == 0)
//    {
//        printf("this is function3\n");
//    }
//    else if(strcmp(argv[1], "-d") == 0)
//    {
//        printf("this is function4\n");
//    }
//    else
//    {
//        printf("no this function!!\n");
//    }
//   //for(int i = 0; argv[i]; i++)
//    //{
//    //    printf("argv[%d]->%s\n", i, argv[i]);
//    //}
//
//}
//int g_val=1000;
//int main()
//{
//  pid_t id=fork();
//  if(id<0)
//  {
//    perror("fork\n");
//    return -1;
//  }
//  else if(id==0)
//  {
//    //child
//    while(1)
//    {
//     printf("I am child,pid:%d,ppid:%d,g_val:%d\n",getpid(),getppid(),g_val);
//      sleep(2);
//    }
//  
//  }
//  else{
//
//    while(1)    {
//      printf("I am parent,pid:%d,ppid:%d,g_val:%d\n",getpid(),getppid(),g_val);
//      sleep(2);
//    }
//  }
//  return 0;
//  }
